package com.qzl.feiq.protocol;

import com.qzl.feiq.message.Message;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import com.qzl.feiq.config.StaticConfig;

/**
 * 将接收到的DatagramPacket转换为message方便处理
 */
// UDP 是基于数据报的协议，Netty 中默认接收到的是 DatagramPacket，如果你的解码器只处理 ByteBuf 或其他类型（如继承了 ByteToMessageDecoder），是不会被触发的。
@Slf4j
public class TcpSimple2Message extends SimpleChannelInboundHandler<ByteBuf> {
    @Override
    protected void channelRead0(ChannelHandlerContext ctx, ByteBuf msg) throws Exception {
        log.info("tcp接收到的原始对象: {}" , msg.toString());

    }

    private Message datagramPacket2Message(String content) {
        Message message = new Message();
        if (StringUtils.isNotBlank( content)){
            String[] split = content.split(StaticConfig.SEPARATOR);
            message.setSenderName(split[2].trim());
            message.setSenderHost(split[3].trim());
            message.setCommand(Integer.parseInt(split[4].trim()));
            message.setMsg(split[5].trim());
        }
        return message;
    }


}
